Platform Explorer / Nuxeo Platform 2023.22

Contribution org.nuxeo.ecm.admin.oauth.directoryLayoutContrib--layouts

This contribution is part of XML component org.nuxeo.ecm.admin.oauth.directoryLayoutContrib inside nuxeo-admin-center-oauth-2023.22.13.jar /OSGI-INF/directory-layout-contrib.xml

Extension Point

Extension point layouts of component WebLayoutManager.

Registration Order

1
The registration order represents the order in which this contribution was registered on its target extention point. This will impact the override/merge behaviour when it is implemented on the target service, and is useful for proper customization of existing contributions.
You can influence this order by adding "require" tags in the containing component declaration, to make sure it is resolved after another component (see "Resolution Order" on components).

Contributed Items

  • <layout name="oauth2ClientsLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>clientName</widget>
            </row>
            <row>
              <widget>clientId</widget>
            </row>
            <row>
              <widget>clientSecret</widget>
            </row>
            <row>
              <widget>redirectURIs</widget>
            </row>
            <row>
              <widget>autoGrant</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
    
          </rows>
    
          <widget name="clientName" type="text">
            <labels>
              <label mode="any">label.oauth2.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.name</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.name
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="clientId" type="text">
            <labels>
              <label mode="any">label.oauth2.clientId</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.clientId</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.clientId
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="validator">#{oauth2ClientsActions.validateClientId}</property>
            </properties>
          </widget>
          <widget name="clientSecret" type="text">
            <labels>
              <label mode="any">label.oauth2.clientSecret</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.clientSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.clientSecret
              </property>
            </properties>
          </widget>
          <widget name="redirectURIs" type="text">
            <labels>
              <label mode="any">label.oauth2.redirectURIs</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.redirectURIs</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.redirectURIs
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="validator">#{oauth2ClientsActions.validateRedirectURIs}</property>
              <property name="placeholder">#{messages['label.oauth2.redirectURIs.placeholder']}</property>
            </properties>
          </widget>
          <widget name="autoGrant" type="checkbox">
            <labels>
              <label mode="any">label.oauth2.autoGrant</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.autoGrant</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.autoGrant
              </property>
            </properties>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">label.oauth2.enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.enabled</field>
            </fields>
          </widget>
        </layout>
  • <layout name="oauthConsumerLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>consumerSecret</widget>
            </row>
            <row>
              <widget>publicKey</widget>
            </row>
            <row>
              <widget>description</widget>
            </row>
            <row>
              <widget>signedFetchSupport</widget>
              <widget>dedicatedLogin</widget>
            </row>
            <row>
              <widget>callbackURL</widget>
            </row>
            <row>
              <widget>allowBypassVerifier</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
    
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
            </properties>
          </widget>
          <widget name="consumerSecret" type="text">
            <labels>
              <label mode="any">Consumer Secret (HMAC Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.consumerSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerSecret
              </property>
            </properties>
          </widget>
          <widget name="publicKey" type="textarea">
            <labels>
              <label mode="any">Consumer Public Key (RSA Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.publicKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.publicKey
              </property>
            </properties>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">Enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.enabled</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
          <widget name="description" type="text">
            <labels>
              <label mode="any">Description</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.description</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.description
              </property>
            </properties>
          </widget>
          <widget name="signedFetchSupport" type="template">
            <labels>
              <label mode="any">Allow 2 legged auth</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.signedFetchSupport</field>
              <field>oauthConsumer.dedicatedLogin</field>
            </fields>
            <properties mode="any">
            <property name="template">
              /widgets/signedFetch_widget_template.xhtml
            </property>
            <property name="help">
            label.oauth.help.signedFetchSupport
            </property>
            </properties>
          </widget>
          <widget name="callbackURL" type="text">
            <labels>
              <label mode="any">Callback URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.callbackURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.callbackURL
              </property>
            </properties>
          </widget>
          <widget name="allowBypassVerifier" type="checkbox">
            <labels>
              <label mode="any">Allow OAuth verifier check bypass</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.allowBypassVerifier</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
    
        </layout>
  • <layout name="oauthServiceProviderLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>gadgetUrl</widget>
            </row>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>consumerSecret</widget>
            </row>
            <!--<row>
              <widget>publicKey</widget>
            </row>-->
            <row>
              <widget>description</widget>
            </row>
            <row>
              <widget>requestTokenURL</widget>
            </row>
            <row>
              <widget>userAuthorizationURL</widget>
            </row>
            <row>
              <widget>accessTokenURL</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
              <property name="size">60</property>
            </properties>
          </widget>
          <widget name="consumerSecret" type="text">
            <labels>
              <label mode="any">Consumer Secret (HMAC Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.consumerSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerSecret
              </property>
              <property name="size">60</property>
            </properties>
          </widget>
          <widget name="publicKey" type="text">
            <labels>
              <label mode="any">Consumer Public Key (RSA Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.publicKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.publicKey
              </property>
              <property name="size">100</property>
            </properties>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">Enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.enabled</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
          <widget name="description" type="text">
            <labels>
              <label mode="any">Description</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.description</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.description
              </property>
              <property name="size">30</property>
            </properties>
          </widget>
          <widget name="requestTokenURL" type="text">
            <labels>
              <label mode="any">Request Token URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.requestTokenURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.requestTokenURL
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="userAuthorizationURL" type="text">
            <labels>
              <label mode="any">Authorization URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.userAuthorizationURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.userAuthorizationURL
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="accessTokenURL" type="text">
            <labels>
              <label mode="any">AccessToken URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.accessTokenURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.accessTokenURL
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="gadgetUrl" type="text">
            <labels>
              <label mode="any">Gadget URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.gadgetUrl</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.gadgetUrl
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">Service name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.serviceName</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.serviceName
              </property>
            </properties>
          </widget>
    
        </layout>
  • <layout name="oauth2ServiceProviderLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>description</widget>
            </row>
            <row>
              <widget>clientId</widget>
            </row>
            <row>
              <widget>clientSecret</widget>
            </row>
            <row>
              <widget>authorizationServerURL</widget>
            </row>
            <row>
              <widget>tokenServerURL</widget>
            </row>
            <row>
              <widget>userAuthorizationURL</widget>
            </row>
            <row>
              <widget>scopes</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
          </rows>
    
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">Service Name</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.serviceName</field>
            </fields>
          </widget>
          <widget name="authorizationServerURL" type="text">
            <labels>
              <label mode="any">Authorization Server URL</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.authorizationServerURL</field>
            </fields>
            <properties mode="edit">
               <property name="size">50</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="tokenServerURL" type="text">
            <labels>
              <label mode="any">Token Server URL</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.tokenServerURL</field>
            </fields>
            <properties mode="edit">
               <property name="size">50</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="clientId" type="text">
            <labels>
              <label mode="any">ClientID</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.clientId</field>
            </fields>
            <properties mode="edit">
               <property name="size">40</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="userAuthorizationURL" type="text">
            <labels>
              <label mode="any">User Authorization URL</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.userAuthorizationURL</field>
            </fields>
            <properties mode="edit">
               <property name="size">50</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="clientSecret" type="text">
            <labels>
              <label mode="any">Client Secret</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.clientSecret</field>
            </fields>
            <properties mode="edit">
               <property name="size">60</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="scopes" type="text">
            <labels>
              <label mode="any">Scopes</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.scopes</field>
            </fields>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">Enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2ServiceProvider.enabled</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
          <widget name="description" type="text">
            <labels>
              <label mode="any">Description</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2ServiceProvider.description</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.description
              </property>
            </properties>
          </widget>
    
        </layout>
  • <layout name="externalGadgetLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>id</widget>
            </row>
            <row>
              <widget>label</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
            <row>
              <widget>category</widget>
            </row>
            <row>
              <widget>url</widget>
            </row>
          </rows>
    
          <widget name="id" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.id</field>
            </fields>
          </widget>
          <widget name="label" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.label</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.label</field>
            </fields>
          </widget>
          <widget name="enabled" type="template">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.enabled</field>
            </fields>
            <properties mode="any">
            <property name="template">
              /widgets/integer_yes_no_widget_template.xhtml
            </property>
          </properties>
    
          </widget>
          <widget name="category" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.category</field>
            </fields>
          </widget>
          <widget name="url" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.gadgeturl</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.url</field>
            </fields>
          </widget>
    
          <widget name="iconUrl" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.iconurl</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.iconUrl</field>
            </fields>
          </widget>
    
        </layout>
  • <layout name="oauthConsumerTokenLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>appId</widget>
            </row>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>token</widget>
            </row>
            <row>
              <widget>tokenSecret</widget>
            </row>
            <row>
              <widget>nuxeoLogin</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <row>
              <widget>duration</widget>
            </row>
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
            </properties>
          </widget>
    
          <widget name="appId" type="text">
            <labels>
              <label mode="any">AppId (Gadget) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.appId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.appId
              </property>
            </properties>
          </widget>
    
          <widget name="token" type="text">
            <labels>
              <label mode="any">OAUth Token </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.token</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.token
              </property>
            </properties>
          </widget>
    
          <widget name="tokenSecret" type="text">
            <labels>
              <label mode="any">OAUth Token Secret</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.tokenSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.tokenSecret
              </property>
            </properties>
          </widget>
    
          <widget name="nuxeoLogin" type="text">
            <labels>
              <label mode="any">Nuxeo Login </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.nuxeoLogin</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.nuxeoLogin
              </property>
            </properties>
          </widget>
    
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.creationDate</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.creationDate
              </property>
            </properties>
          </widget>
    
          <widget name="duration" type="int">
            <labels>
              <label mode="any">Duration (in minutes)</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.durationInMinutes</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.durationInMinutes
              </property>
            </properties>
          </widget>
    
        </layout>
  • <layout name="oauthProviderTokenLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>appId</widget>
            </row>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>token</widget>
            </row>
            <row>
              <widget>tokenSecret</widget>
            </row>
            <row>
              <widget>userId</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <!--<row>
              <widget>duration</widget>
            </row>-->
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
            </properties>
          </widget>
    
          <widget name="appId" type="text">
            <labels>
              <label mode="any">AppId (Gadget) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.appId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.appId
              </property>
            </properties>
          </widget>
    
          <widget name="token" type="text">
            <labels>
              <label mode="any">OAUth Token </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.token</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.token
              </property>
            </properties>
          </widget>
    
          <widget name="tokenSecret" type="text">
            <labels>
              <label mode="any">OAUth Token Secret</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.tokenSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.tokenSecret
              </property>
            </properties>
            <widgetModes>
               <mode value="list">hidden</mode>
            </widgetModes>
          </widget>
    
          <widget name="userId" type="text">
            <labels>
              <label mode="any">Nuxeo Login </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.clientId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.nuxeoLogin
              </property>
            </properties>
          </widget>
    
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.creationDate</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.creationDate
              </property>
            </properties>
          </widget>
    
          <widget name="duration" type="int">
            <labels>
              <label mode="any">Duration (in minutes)</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.durationInMinutes</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.durationInMinutes
              </property>
            </properties>
          </widget>
    
        </layout>
  • <layout name="oauth2ProviderTokenLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>id</widget>
            </row>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>nuxeoLogin</widget>
            </row>
            <row>
              <widget>serviceLogin</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <row>
              <widget>isShared</widget>
            </row>
            <row>
              <widget>sharedWith</widget>
            </row>
          </rows>
    
          <widget name="id" type="text">
            <labels>
              <label mode="any">Id</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.id</field>
            </fields>
            <widgetModes>
              <mode value="edit">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">Service Name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.serviceName</field>
            </fields>
          </widget>
          <widget name="nuxeoLogin" type="text">
            <labels>
              <label mode="any">Nuxeo Login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.nuxeoLogin</field>
            </fields>
          </widget>
          <widget name="serviceLogin" type="text">
            <labels>
              <label mode="any">Service Login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.serviceLogin</field>
            </fields>
          </widget>
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.creationDate</field>
            </fields>
          </widget>
          <widget name="isShared" type="checkbox">
            <labels>
              <label mode="any">Shared Token</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.isShared</field>
            </fields>
          </widget>
          <widget name="sharedWith" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">User/Groups allowed</label>
            </labels>
            <fields>
              <field>#{oauth2ProvidersTokensActions.sharedWith}</field>
            </fields>
            <properties widgetMode="edit">
              <property name="prefixed">true</property>
              <property name="minChars">3</property>
              <property name="hideHelpLabel">false</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
    
        </layout>

XML Source

<extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">

    <layout name="oauth2ClientsLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>clientName</widget>
        </row>
        <row>
          <widget>clientId</widget>
        </row>
        <row>
          <widget>clientSecret</widget>
        </row>
        <row>
          <widget>redirectURIs</widget>
        </row>
        <row>
          <widget>autoGrant</widget>
        </row>
        <row>
          <widget>enabled</widget>
        </row>

      </rows>

      <widget name="clientName" type="text">
        <labels>
          <label mode="any">label.oauth2.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Client.name</field>
        </fields>
        <properties mode="any">
          <property name="help">
            label.oauth2.help.name
          </property>
        </properties>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="clientId" type="text">
        <labels>
          <label mode="any">label.oauth2.clientId</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Client.clientId</field>
        </fields>
        <properties mode="any">
          <property name="help">
            label.oauth2.help.clientId
          </property>
        </properties>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="validator">#{oauth2ClientsActions.validateClientId}</property>
        </properties>
      </widget>
      <widget name="clientSecret" type="text">
        <labels>
          <label mode="any">label.oauth2.clientSecret</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Client.clientSecret</field>
        </fields>
        <properties mode="any">
          <property name="help">
            label.oauth2.help.clientSecret
          </property>
        </properties>
      </widget>
      <widget name="redirectURIs" type="text">
        <labels>
          <label mode="any">label.oauth2.redirectURIs</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Client.redirectURIs</field>
        </fields>
        <properties mode="any">
          <property name="help">
            label.oauth2.help.redirectURIs
          </property>
        </properties>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="validator">#{oauth2ClientsActions.validateRedirectURIs}</property>
          <property name="placeholder">#{messages['label.oauth2.redirectURIs.placeholder']}</property>
        </properties>
      </widget>
      <widget name="autoGrant" type="checkbox">
        <labels>
          <label mode="any">label.oauth2.autoGrant</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Client.autoGrant</field>
        </fields>
        <properties mode="any">
          <property name="help">
            label.oauth2.help.autoGrant
          </property>
        </properties>
      </widget>
      <widget name="enabled" type="checkbox">
        <labels>
          <label mode="any">label.oauth2.enabled</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Client.enabled</field>
        </fields>
      </widget>
    </layout>

    <layout name="oauthConsumerLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>consumerKey</widget>
        </row>
        <row>
          <widget>consumerSecret</widget>
        </row>
        <row>
          <widget>publicKey</widget>
        </row>
        <row>
          <widget>description</widget>
        </row>
        <row>
          <widget>signedFetchSupport</widget>
          <widget>dedicatedLogin</widget>
        </row>
        <row>
          <widget>callbackURL</widget>
        </row>
        <row>
          <widget>allowBypassVerifier</widget>
        </row>
        <row>
          <widget>enabled</widget>
        </row>

      </rows>

      <widget name="consumerKey" type="text">
        <labels>
          <label mode="any">Consumer Key</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.consumerKey</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.consumerKey
          </property>
        </properties>
      </widget>
      <widget name="consumerSecret" type="text">
        <labels>
          <label mode="any">Consumer Secret (HMAC Signature) </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.consumerSecret</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.consumerSecret
          </property>
        </properties>
      </widget>
      <widget name="publicKey" type="textarea">
        <labels>
          <label mode="any">Consumer Public Key (RSA Signature) </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.publicKey</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.publicKey
          </property>
        </properties>
      </widget>
      <widget name="enabled" type="checkbox">
        <labels>
          <label mode="any">Enabled</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.enabled</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.enabled
          </property>
        </properties>
      </widget>
      <widget name="description" type="text">
        <labels>
          <label mode="any">Description</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.description</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.description
          </property>
        </properties>
      </widget>
      <widget name="signedFetchSupport" type="template">
        <labels>
          <label mode="any">Allow 2 legged auth</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.signedFetchSupport</field>
          <field>oauthConsumer.dedicatedLogin</field>
        </fields>
        <properties mode="any">
        <property name="template">
          /widgets/signedFetch_widget_template.xhtml
        </property>
        <property name="help">
        label.oauth.help.signedFetchSupport
        </property>
        </properties>
      </widget>
      <widget name="callbackURL" type="text">
        <labels>
          <label mode="any">Callback URL</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.callbackURL</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.callbackURL
          </property>
        </properties>
      </widget>
      <widget name="allowBypassVerifier" type="checkbox">
        <labels>
          <label mode="any">Allow OAuth verifier check bypass</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthConsumer.allowBypassVerifier</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.enabled
          </property>
        </properties>
      </widget>

    </layout>


    <layout name="oauthServiceProviderLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>gadgetUrl</widget>
        </row>
        <row>
          <widget>serviceName</widget>
        </row>
        <row>
          <widget>consumerKey</widget>
        </row>
        <row>
          <widget>consumerSecret</widget>
        </row>
        <!--<row>
          <widget>publicKey</widget>
        </row>-->
        <row>
          <widget>description</widget>
        </row>
        <row>
          <widget>requestTokenURL</widget>
        </row>
        <row>
          <widget>userAuthorizationURL</widget>
        </row>
        <row>
          <widget>accessTokenURL</widget>
        </row>
        <row>
          <widget>enabled</widget>
        </row>
      </rows>

      <widget name="consumerKey" type="text">
        <labels>
          <label mode="any">Consumer Key</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.consumerKey</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.consumerKey
          </property>
          <property name="size">60</property>
        </properties>
      </widget>
      <widget name="consumerSecret" type="text">
        <labels>
          <label mode="any">Consumer Secret (HMAC Signature) </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.consumerSecret</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.consumerSecret
          </property>
          <property name="size">60</property>
        </properties>
      </widget>
      <widget name="publicKey" type="text">
        <labels>
          <label mode="any">Consumer Public Key (RSA Signature) </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.publicKey</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.publicKey
          </property>
          <property name="size">100</property>
        </properties>
      </widget>
      <widget name="enabled" type="checkbox">
        <labels>
          <label mode="any">Enabled</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.enabled</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.enabled
          </property>
        </properties>
      </widget>
      <widget name="description" type="text">
        <labels>
          <label mode="any">Description</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.description</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.description
          </property>
          <property name="size">30</property>
        </properties>
      </widget>
      <widget name="requestTokenURL" type="text">
        <labels>
          <label mode="any">Request Token URL</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.requestTokenURL</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.requestTokenURL
          </property>
          <property name="size">50</property>
        </properties>
      </widget>
      <widget name="userAuthorizationURL" type="text">
        <labels>
          <label mode="any">Authorization URL</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.userAuthorizationURL</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.userAuthorizationURL
          </property>
          <property name="size">50</property>
        </properties>
      </widget>
      <widget name="accessTokenURL" type="text">
        <labels>
          <label mode="any">AccessToken URL</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.accessTokenURL</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.accessTokenURL
          </property>
          <property name="size">50</property>
        </properties>
      </widget>
      <widget name="gadgetUrl" type="text">
        <labels>
          <label mode="any">Gadget URL</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.gadgetUrl</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.gadgetUrl
          </property>
          <property name="size">50</property>
        </properties>
      </widget>
      <widget name="serviceName" type="text">
        <labels>
          <label mode="any">Service name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthServiceProvider.serviceName</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.serviceName
          </property>
        </properties>
      </widget>

    </layout>

<layout name="oauth2ServiceProviderLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>serviceName</widget>
        </row>
        <row>
          <widget>description</widget>
        </row>
        <row>
          <widget>clientId</widget>
        </row>
        <row>
          <widget>clientSecret</widget>
        </row>
        <row>
          <widget>authorizationServerURL</widget>
        </row>
        <row>
          <widget>tokenServerURL</widget>
        </row>
        <row>
          <widget>userAuthorizationURL</widget>
        </row>
        <row>
          <widget>scopes</widget>
        </row>
        <row>
          <widget>enabled</widget>
        </row>
      </rows>

      <widget name="serviceName" type="text">
        <labels>
          <label mode="any">Service Name</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.serviceName</field>
        </fields>
      </widget>
      <widget name="authorizationServerURL" type="text">
        <labels>
          <label mode="any">Authorization Server URL</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.authorizationServerURL</field>
        </fields>
        <properties mode="edit">
           <property name="size">50</property>
        </properties>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="tokenServerURL" type="text">
        <labels>
          <label mode="any">Token Server URL</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.tokenServerURL</field>
        </fields>
        <properties mode="edit">
           <property name="size">50</property>
        </properties>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="clientId" type="text">
        <labels>
          <label mode="any">ClientID</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.clientId</field>
        </fields>
        <properties mode="edit">
           <property name="size">40</property>
        </properties>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="userAuthorizationURL" type="text">
        <labels>
          <label mode="any">User Authorization URL</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.userAuthorizationURL</field>
        </fields>
        <properties mode="edit">
           <property name="size">50</property>
        </properties>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="clientSecret" type="text">
        <labels>
          <label mode="any">Client Secret</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.clientSecret</field>
        </fields>
        <properties mode="edit">
           <property name="size">60</property>
        </properties>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="scopes" type="text">
        <labels>
          <label mode="any">Scopes</label>
        </labels>
        <fields>
          <field>oauth2ServiceProvider.scopes</field>
        </fields>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="enabled" type="checkbox">
        <labels>
          <label mode="any">Enabled</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2ServiceProvider.enabled</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.enabled
          </property>
        </properties>
      </widget>
      <widget name="description" type="text">
        <labels>
          <label mode="any">Description</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2ServiceProvider.description</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.description
          </property>
        </properties>
      </widget>

    </layout>

    <layout name="externalGadgetLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>id</widget>
        </row>
        <row>
          <widget>label</widget>
        </row>
        <row>
          <widget>enabled</widget>
        </row>
        <row>
          <widget>category</widget>
        </row>
        <row>
          <widget>url</widget>
        </row>
      </rows>

      <widget name="id" type="text">
        <labels>
          <label mode="any">label.externalGadgetLayoutAdmin.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>externalgadget.id</field>
        </fields>
      </widget>
      <widget name="label" type="text">
        <labels>
          <label mode="any">label.externalGadgetLayoutAdmin.label</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>externalgadget.label</field>
        </fields>
      </widget>
      <widget name="enabled" type="template">
        <labels>
          <label mode="any">label.externalGadgetLayoutAdmin.enabled</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>externalgadget.enabled</field>
        </fields>
        <properties mode="any">
        <property name="template">
          /widgets/integer_yes_no_widget_template.xhtml
        </property>
      </properties>

      </widget>
      <widget name="category" type="text">
        <labels>
          <label mode="any">label.externalGadgetLayoutAdmin.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>externalgadget.category</field>
        </fields>
      </widget>
      <widget name="url" type="text">
        <labels>
          <label mode="any">label.externalGadgetLayoutAdmin.gadgeturl</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>externalgadget.url</field>
        </fields>
      </widget>

      <widget name="iconUrl" type="text">
        <labels>
          <label mode="any">label.externalGadgetLayoutAdmin.iconurl</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>externalgadget.iconUrl</field>
        </fields>
      </widget>

    </layout>















  <layout name="oauthConsumerTokenLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>appId</widget>
        </row>
        <row>
          <widget>consumerKey</widget>
        </row>
        <row>
          <widget>token</widget>
        </row>
        <row>
          <widget>tokenSecret</widget>
        </row>
        <row>
          <widget>nuxeoLogin</widget>
        </row>
        <row>
          <widget>creationDate</widget>
        </row>
        <row>
          <widget>duration</widget>
        </row>
      </rows>

      <widget name="consumerKey" type="text">
        <labels>
          <label mode="any">Consumer Key</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.consumerKey</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.consumerKey
          </property>
        </properties>
      </widget>

      <widget name="appId" type="text">
        <labels>
          <label mode="any">AppId (Gadget) </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.appId</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.appId
          </property>
        </properties>
      </widget>

      <widget name="token" type="text">
        <labels>
          <label mode="any">OAUth Token </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.token</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.token
          </property>
        </properties>
      </widget>

      <widget name="tokenSecret" type="text">
        <labels>
          <label mode="any">OAUth Token Secret</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.tokenSecret</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.tokenSecret
          </property>
        </properties>
      </widget>

      <widget name="nuxeoLogin" type="text">
        <labels>
          <label mode="any">Nuxeo Login </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.nuxeoLogin</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.nuxeoLogin
          </property>
        </properties>
      </widget>

      <widget name="creationDate" type="datetime">
        <labels>
          <label mode="any">Creation Date </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.creationDate</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.creationDate
          </property>
        </properties>
      </widget>

      <widget name="duration" type="int">
        <labels>
          <label mode="any">Duration (in minutes)</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.durationInMinutes</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.durationInMinutes
          </property>
        </properties>
      </widget>

    </layout>






  <layout name="oauthProviderTokenLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>appId</widget>
        </row>
        <row>
          <widget>consumerKey</widget>
        </row>
        <row>
          <widget>token</widget>
        </row>
        <row>
          <widget>tokenSecret</widget>
        </row>
        <row>
          <widget>userId</widget>
        </row>
        <row>
          <widget>creationDate</widget>
        </row>
        <!--<row>
          <widget>duration</widget>
        </row>-->
      </rows>

      <widget name="consumerKey" type="text">
        <labels>
          <label mode="any">Consumer Key</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.consumerKey</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.consumerKey
          </property>
        </properties>
      </widget>

      <widget name="appId" type="text">
        <labels>
          <label mode="any">AppId (Gadget) </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.appId</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.appId
          </property>
        </properties>
      </widget>

      <widget name="token" type="text">
        <labels>
          <label mode="any">OAUth Token </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.token</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.token
          </property>
        </properties>
      </widget>

      <widget name="tokenSecret" type="text">
        <labels>
          <label mode="any">OAUth Token Secret</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.tokenSecret</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.tokenSecret
          </property>
        </properties>
        <widgetModes>
           <mode value="list">hidden</mode>
        </widgetModes>
      </widget>

      <widget name="userId" type="text">
        <labels>
          <label mode="any">Nuxeo Login </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.clientId</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.nuxeoLogin
          </property>
        </properties>
      </widget>

      <widget name="creationDate" type="datetime">
        <labels>
          <label mode="any">Creation Date </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.creationDate</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.creationDate
          </property>
        </properties>
      </widget>

      <widget name="duration" type="int">
        <labels>
          <label mode="any">Duration (in minutes)</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauthToken.durationInMinutes</field>
        </fields>
        <properties mode="any">
          <property name="help">
          label.oauth.help.durationInMinutes
          </property>
        </properties>
      </widget>

    </layout>


  <layout name="oauth2ProviderTokenLayoutAdmin">
      <templates>
        <template mode="any">
          /directory/directoryOAuth_layout_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>id</widget>
        </row>
        <row>
          <widget>serviceName</widget>
        </row>
        <row>
          <widget>nuxeoLogin</widget>
        </row>
        <row>
          <widget>serviceLogin</widget>
        </row>
        <row>
          <widget>creationDate</widget>
        </row>
        <row>
          <widget>isShared</widget>
        </row>
        <row>
          <widget>sharedWith</widget>
        </row>
      </rows>

      <widget name="id" type="text">
        <labels>
          <label mode="any">Id</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Token.id</field>
        </fields>
        <widgetModes>
          <mode value="edit">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="serviceName" type="text">
        <labels>
          <label mode="any">Service Name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Token.serviceName</field>
        </fields>
      </widget>
      <widget name="nuxeoLogin" type="text">
        <labels>
          <label mode="any">Nuxeo Login</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Token.nuxeoLogin</field>
        </fields>
      </widget>
      <widget name="serviceLogin" type="text">
        <labels>
          <label mode="any">Service Login</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Token.serviceLogin</field>
        </fields>
      </widget>
      <widget name="creationDate" type="datetime">
        <labels>
          <label mode="any">Creation Date</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Token.creationDate</field>
        </fields>
      </widget>
      <widget name="isShared" type="checkbox">
        <labels>
          <label mode="any">Shared Token</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>oauth2Token.isShared</field>
        </fields>
      </widget>
      <widget name="sharedWith" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">User/Groups allowed</label>
        </labels>
        <fields>
          <field>#{oauth2ProvidersTokensActions.sharedWith}</field>
        </fields>
        <properties widgetMode="edit">
          <property name="prefixed">true</property>
          <property name="minChars">3</property>
          <property name="hideHelpLabel">false</property>
        </properties>
        <widgetModes>
          <mode value="view_list">hidden</mode>
          <mode value="view_list_and_header">hidden</mode>
        </widgetModes>
      </widget>

    </layout>

  </extension>